본문으로 건너뛰기

python 자료형

작성일 : 2024.10.14

숫자형​

  • 정수형 : 정수를 뜻하는 자료형
a = 123
a = -123
a = 0
  • 실수형 : 소수점이 포함된 숫자
a = 1.2 
a = -3.45

a = 4.24E10
a = 4.24E-10
  • 8진수 :  숫자가 0o 또는 0O(숫자 0 + 알파벳 소문자 o 또는 대문자 O)으로 시작
>>> a = 0o177 
>>> print(a) 
127
  • 16진수 : 0x로 시작
>>> b = 0xABC 
>>> print(b)
2748

기본 산술 연산자​

    • :  더하기
    • :  빼기
    • :  곱하기
  • / :  나누기 (실수로 반환함)
  • // :  몫 구하기 (정수로 반환)
  • % :  나머지 구하기
  • ** :  제곱 (A ** B은 A의 B제곱을 의미)

str(value) : 숫자를 문자열로 변환​

문자열​

문자열 생성​

>>> "Hello World"
>>> 'Python is fun'
>>> """Life is too short, You need python"""
>>> '''Life is too short, You need python'''

문자열 연산​

    • : 문자열 결합
>>> head = "Python"
>>> tail = " is fun!"
>>> head + tail
'Python is fun!'
    • : 문자열 반복
>>> a = "python"
>>> a * 2
'pythonpython'

문자열 길이​

  • len 함수 사용
>>> a = "Life is too short"
>>> len(a)
17

문자열 인덱싱​

>>> a = "Life is too short, You need Python"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1]
'n'

문자열 슬라이싱​

>>> a = "Life is too short, You need Python"
>>> a[0:4]
'Life'
>>> a[0:3] # 0 <= a < 3
'Lif'
>>> a[19:]
'You need Python'
>>> a = "20230331Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2023'
>>> day
'0331'
>>> weather
'Rainy'

문자열 포매팅​

  • %d, %s 사용
>>> "I eat %d apples." % 3
'I eat 3 apples.'

>>> "I eat %s apples." % "five"
'I eat five apples.'

>>> number = 10
>>> day = "three"
>>> "I ate %d apples. so I was sick for %s days." % (number, day)
'I ate 10 apples. so I was sick for three days.'
문자열 포맷 코드​
코드설명
%s문
%c
%d
%f
%o
%x(문자 % 자체)  % 자체)

문자열 관련 함수​

문자 갯수 세기 - count​
>>> a = "hobby"
>>> a.count('b')
2
위치 알려 주기 1 - find​
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
위치 알려 주기 2 - index​
>>> a = "Life is too short"
>>> a.index('t')
8
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
문자열 삽입 - join​
>>> ",".join('abcd')
'a,b,c,d'
>>> ",".join(['a', 'b', 'c', 'd'])
'a,b,c,d'
소문자, 대문자 바꾸기 - upper, lower​
>>> a = "hi"
>>> a.upper()
'HI'

>>> a = "HI"
>>> a.lower()
'hi'
공백 지우기 - lstrip​
>>> a = " hi "
>>> a.lstrip()
'hi '

>>> a= " hi "
>>> a.rstrip()
' hi'

>>> a = " hi "
>>> a.strip()
'hi'
문자열 바꾸기 - replace​
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
문자열 나누기 - split​
>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']

문자열을 숫자로 변환​

>>> value='123'
>>> int(value)
123
>>> float(value)
123.0

리스트​

리스트 생성​

>>> a = []
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]
>>> f = list()

리스트 인덱싱​

>>> a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> a[0]
1
>>> a[-1]
3

>>> a = [1, 2, 3, ['a', 'b', 'c']]
>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
>>> a[-1][0]
'a'

리스트 슬라이싱​

>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]
>>> a = "12345"
>>> a[0:2]
'12'

>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
>>> a[2:5]
[3, ['a', 'b', 'c'], 4]
>>> a[3][:2]
['a', 'b']

리스트 연산​

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]

>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

>>> a = [1, 2, 3]
>>> len(a)
3

리스트 수정 및 삭제​

>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]

>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]

리스트 관련 함수​

리스트에 요소 추가하기 - append\​
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

>>> a.append([5, 6])
>>> a
[1, 2, 3, 4, [5, 6]]
리스트 정렬 - sort​
>>> a = [1, 4, 3, 2]
>>> a.sort()
>>> a
[1, 2, 3, 4]
리스트 뒤집기 - reverse​
>>> a = ['a', 'c', 'b']
>>> a.reverse()
>>> a
['b', 'c', 'a']
인덱스 반환 - index​
>>> a = [1, 2, 3]
>>> a.index(3)
2
>>> a.index(1)
0
>>> a.index(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 0 is not in list
리스트에 요소 삽입 - insert​
>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]

>>> a.insert(3, 5)
>>> a
[4, 1, 2, 5, 3]
리스트 요소 제거 - remove​
>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]

>>> a.remove(3)
>>> a
[1, 2, 1, 2]
리스트 요소 끄집어 내기 - pop​
>>> a = [1, 2, 3]
>>> a.pop()
3
>>> a
[1, 2]

>>> a = [1, 2, 3]
>>> a.pop(1)
2
>>> a
[1, 3]
리스트에 포함된 요소 x의 개수 세기 - count​
>>> a = [1, 2, 3, 1]
>>> a.count(1)
2
리스트 확장 - extend​
>>> a = [1, 2, 3]
>>> a.extend([4, 5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

딕셔너리​

딕셔너리 생성​

>>> dic = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a = {1: 'hi'}
>>> a = {'a': [1, 2, 3]}

>>> a = {1: 'a'}
>>> a[2] = 'b'
>>> a
{1: 'a', 2: 'b'}

>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}

>>> del a[1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}

>>> grade = {'pey': 10, 'julliet': 99}
>>> grade['pey']
10
>>> grade['julliet']
99

>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}

딕셔너리 관련 함수​

Key 리스트 만들기 - keys​
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])

>>> for k in a.keys():
	    print(k)
name
phone
birth

>>> list(a.keys())
['name', 'phone', 'birth']

Value 리스트 만들기 - values​
>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])
Key, Value 쌍 얻기 - items​
>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
Key: Value 쌍 모두 지우기 - clear​
>>> a.clear()
>>> a
{}
Key로 Value 얻기 - get​
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
>>> a.get('nokey', 'foo') 
#딕셔너리 a에는 'nokey'에 해당하는 Key가 없다. 따라서 디폴트 값인 'foo'를 리턴한다.
'foo'
해당 Key가 딕셔너리 안에 있는지 조사하기 - in​
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False